package com.tedu.day02;

/**
 * 匿名内部类: 需要了解抽象类与接口定义与使用---拓展: 表达式【JavaAPI】
 * 定义: 抽象类/接口   引用=new 抽象类/接口(){};
 * 特点: 对象只需要创建一次时候
 */
public class 匿名内部类 {
    public static void main(String[] args) {
        //创建接口    实现类   继承 USB接口  ---多态类(造型)
       /*  USB usb=new Jack();
        *usb.read(); usb.write();*/
        //针对: 子实现类有多个都需要实现
        //针对: 实现一次，创建一次接口对象---匿名内部类创建: 接口、抽象类
        USB usb=new USB(){

            public void write() {
                System.out.println("写");
            }

            public void read() {
                System.out.println("读");
            }
        };
        usb.write(); usb.read();
        //作业2:  抽象类使用匿名内部类方法创建出来，并且输出跑、睡方法
        USB1 usb1=new Animal1(){

            public void run() {
                System.out.println("跑");
            }

            public void sleep() {
                System.out.println("睡");
            }
        };
        usb1.run(); usb1.sleep();
    }
}
//创建接口   USB   功能:   读   写
interface USB{
    public abstract void write();
    public abstract void read();
}
interface USB1{
    public abstract void run();
    public abstract void sleep();
}
//以往创建接口对象: 先创建实现类   关键字: implements
class Jack implements USB{
    public void write(){
        System.out.println("写");
    }
    public void read(){
        System.out.println("读");
    }
}
//创建抽象类 Animal  功能: 跑   睡
abstract class Animal{
    public abstract void run();
    public abstract void sleep();
}
class Animal1 implements USB1{
    public void run(){
        System.out.println("跑");
    }
    public void sleep(){
        System.out.println("睡");
    }

}
